package com.lizardmind.haofudoctor.other.rongYun

import android.os.Parcel
import android.os.Parcelable
import com.lizardmind.haofudoctor.other.jsonOf
import io.rong.common.ParcelUtils
import io.rong.imlib.MessageTag
import io.rong.imlib.model.MessageContent
import org.json.JSONObject

/**
 * 患教信息
 * Created by Extends on 2017/12/6 14:03
 */
@MessageTag(value = MessageTags.PATIENTS_EDUCATION,flag = MessageTag.ISCOUNTED or MessageTag.ISPERSISTED)
class PatientsEducationMessage(): MessageContent() {
    var title = ""//文章title
    var content = ""//文章内容
    var img = ""//文章图片
    var url = ""//跳转地址

    constructor(parcel: Parcel) : this() {
        title = ParcelUtils.readFromParcel(parcel)
        content = ParcelUtils.readFromParcel(parcel)
        img = ParcelUtils.readFromParcel(parcel)
        url = ParcelUtils.readFromParcel(parcel)
    }
    constructor(byteArray: ByteArray) : this(JSONObject(String(byteArray)))
    constructor(json: JSONObject):this(){
        if(json.has("title")){
            title = json.optString("title")
        }
        if(json.has("content")){
            content = json.optString("content")
        }
        if(json.has("img")){
            img = json.optString("img")
        }
        if(json.has("url")){
            url = json.optString("url")
        }
    }
    override fun encode(): ByteArray
            =jsonOf("title" to title,"content" to content,"img" to img,"url" to url).toString().toByteArray()

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        ParcelUtils.writeToParcel(parcel,title)
        ParcelUtils.writeToParcel(parcel,content)
        ParcelUtils.writeToParcel(parcel,img)
        ParcelUtils.writeToParcel(parcel,url)
    }

    override fun describeContents(): Int = 0

    companion object CREATOR : Parcelable.Creator<PatientsEducationMessage> {
        override fun createFromParcel(parcel: Parcel): PatientsEducationMessage {
            return PatientsEducationMessage(parcel)
        }

        override fun newArray(size: Int): Array<PatientsEducationMessage?> {
            return arrayOfNulls(size)
        }
    }
}